/**
 * 
 */
package org.abettor.smartswt.factory;

import java.util.ArrayList;
import java.util.List;

/**
 * 用于保存组件属性信息的对象
 * @author abettor
 */
public class WidgetPropertyParameters
{
	//	用于保存类型信息
	private List<Class> classList = new ArrayList<Class>();
	//	用于保存数值信息
	private List<Object> valuesList = new ArrayList<Object>();

	/**
	 * 默认构造函数
	 *
	 */
	public WidgetPropertyParameters()
	{
	};

	/**
	 * 获取当前属性中每个值的类型信息
	 * @return 类列表
	 */
	public Class[] getClasses()
	{
		int len = classList.size();
		if(len == 0)
		{
			return null;
		}

		Class[] clazzes = new Class[len];
		for(int i = 0; i < len; i ++)
		{
			clazzes[i] = classList.get(i);
		}

		return clazzes;
	}

	/**
	 * 获取当前属性中的每一个子属性的列表
	 * @return 子属性列表
	 */
	public Object[] getParameters()
	{
		if(valuesList.size() == 0)
		{
			return null;
		}

		return valuesList.toArray();
	}

	/**
	 * 像当前属性中添加数值<br />
	 * <b>注意：这个操作是顺序敏感的</b>
	 * @param clazz 所要添加数值的类型
	 * @param value 所要添加数值的引用
	 */
	public void addParameter(Class clazz, Object value)
	{
		classList.add(clazz);
		valuesList.add(value);
	}
}
